---
title: Complete a task
summary: Soft-delete a task as completed.
status: draft
owner: SAIF Documentation
last_reviewed: 2026-08-21
library: SAIF.Business.Tasks.Claim
reference_type: embedded
operation_id: OP-11
trigger: MarkCompleted() call
---

# Complete a task

Marks a task completed (claim tasks only, when a notepad entry is required) and soft-deletes it.

| Field | Value |
| --- | --- |
| **Operation ID** | OP-11 |
| **Trigger** | `MarkCompleted()` call |
| **Inputs** | Task instance |
| **Outputs** | `Completed`/`DeleteFlag` set, task marked dirty |
| **Primary components** | `clsClaimTask.MarkCompleted`, `clsCoverageBTask.MarkCompleted` |
| **Entry point** | `SAIF.Business.Tasks.Claim/clsClaimTask.vb`, `SAIF.Business.Tasks.Claim/clsCoverageBTask.vb` |

## Steps

1. `clsClaimTask.MarkCompleted()`: if `RequiresNotePadEntry` (notepad flag `Y`), set `Completed = True` so the consumer can create the notepad entry ([BR-CT-07](../business-rules.md#br-ct-07-completing-a-notepad-required-task-marks-it-completed-before-soft-delete)); then set `DeleteFlag = "Y"` and `MarkDirty()` — completion is a soft delete.
2. `clsCoverageBTask.MarkCompleted()`: sets `DeleteFlag = clsConstants.Y` and `MarkDirty()` with no notepad step.

## Process flow

```mermaid
flowchart TD
	Start([MarkCompleted called]) --> Type{Claim task or Coverage B?}
	Type -->|Claim task| Notepad{RequiresNotePadEntry?}
	Notepad -->|Yes| SetCompleted[Set Completed = True]
	Notepad -->|No| SoftDelete
	SetCompleted --> SoftDelete["Set DeleteFlag = Y,<br>MarkDirty"]
	Type -->|Coverage B| SoftDelete
	SoftDelete --> EndOk([Task soft-deleted])
```

## Failure and edge-case behavior
- Completion never physically deletes the row; it is always a soft delete via `DeleteFlag`.

## Related documentation
- [Operations and processes](../operations-processes.md)
- [Business rules](../business-rules.md)
- [SQL catalog](../sql/index.md)
- [Database tables](../database-tables.md)

## Sources
- SAIF.Business.Tasks.Claim/clsClaimTask.vb
- SAIF.Business.Tasks.Claim/clsCoverageBTask.vb
